package cn.btks.backstagemanage.role.service;

import cn.btks.backstagemanage.role.dto.RoleDto;
import cn.btks.backstagemanage.role.pojo.Role;
import cn.btks.commonserver.result.ResultState;

import javax.xml.transform.Result;
import java.io.IOException;
import java.util.List;

/**
 * @Author lijun
 * @Date 2021/1/7 11:29
 */
public interface RoleService {

    /**
     * 根据ID查询角色信息
     * @param id
     * @return
     */
    Role findById(Long id);

    /**
     * 查询所有角色信息
     * @return
     */
    List<RoleDto> findAll();

    /**
     * 查询所有角色信息（加密）
     * @return
     */
    List<RoleDto> findAll2() throws IOException;

    /**
     * 查询所有角色信息
     * @return
     */
    List<Role> findAll1();

    /**
     * 根据是否师级查询其下角色信息
     * @return
     */
    List<Role> findAllByIsCity(Integer isCity);

    /**
     * 分页查询角色信息
     * @param pageNumber
     * @param pageSize
     * @param roleName
     * @return
     */
    ResultState findPageList(Integer pageNumber, Integer pageSize, String roleName);

    /**
     * 分页查询角色信息（加密）
     * @param pageNumber
     * @param pageSize
     * @param roleName
     * @return
     */
    ResultState findPageList1(Integer pageNumber, Integer pageSize, String roleName) throws IOException;

    /**
     * 保存角色信息
     * @param role
     * @return
     */
    ResultState save(Role role);

    /**
     * 更新角色信息
     * @param role
     * @return
     */
    ResultState update(Role role);

    /**
     * 根据ID删除角色信息
     * @param id
     * @return
     */
    ResultState delete(Long id);

    /**
     * 根据ID删除角色信息（加密）
     * @param id
     * @return
     */
    ResultState delete1(Long id) throws IOException;

    /**
     * 根据资源清单ID删除关联自身及子资源清单
     * @param menuId
     * @param roleId
     * @return
     */
    ResultState deleteConnectionByMenuId(Long roleId,Long menuId);

    /**
     * 根据资源清单ID删除关联自身及子资源清单（加密）
     * @param menuId
     * @param roleId
     * @return
     */
    ResultState deleteConnectionByMenuId1(Long roleId,Long menuId) throws IOException;
}
